library(friends)
library(dplyr)
library(tidytext)
library(wordcloud)
library(reshape2)
library(word2vec)
library(harrypotter)
library(uwot)
library(plotly)
library(doc2vec)
Die in 3_Text_als_Daten vorbereiteten Daten werden geladen und aufgrund des stochastischen Charakters von UMAP ein seed gesetzt, um die Ergebnisse reproduzieren zu können. Um die Texte mit word2vec bearbeiten zu können werden alte Texte in einem Vektor zusammengefasst (sapply()). Durch die Funktion word2vec werden die Word-Embeddings berechnet. Hierbei kann die Anzahl der Dimensionen, der Iterationen und die Anzahl der genutzten Kerne gesetzt werden. Mehr Kerne führen vereinfacht gesagt zu einer schnelleren Berechnung. Um eine grafische Darstellung in zwei Dimensionen zu ermöglichen, wird UMAP genutzt. Anschließend werden die Wordvektoren in zwei Dimensionen geplottet.
Für den Friendsdatensatz sollen nun Dokument-Embeddings berechnet werden. Um ein anschließendes Labeln zu ermöglichen, wird eine Doc_id erstellt. Durch die Funktion paragraph2vec werden die Dokument-Embeddings berechnet und anschließend durch UMAP auf zwei Dimensionen reduziert. Durch inner_join werden die Embeddings mit dem Labeln über die Doc_id verbunden. Anschließend werden die Daten auf die Hauptcharaktere reduziert.
Hier werden nun die Dokument-Embddings pro Szene berechnet und dargestellt. Hierfür werden die Texte pro Szene über group_by zusammengefasst. Alle anderen Schritte bleiben gleich.